package com.own.business.system.user.business.service;

import com.own.business.system.user.entity.bo.SystemTripartiteAccountBo;
import com.own.business.system.user.entity.map.SystemTripartiteAccountMapVo;
import com.own.business.system.user.entity.po.SystemTripartiteAccount;
import com.own.business.system.user.entity.query.SystemTripartiteAccountQuery;
import com.own.business.system.user.entity.vo.SystemTripartiteAccountVo;
import com.own.component.common.base.service.BaseBindTwoService;
import lombok.NonNull;

/**
 * SystemTripartiteAccountService
 *
 * @author chenxueli
 * @date 2021/10/07 16:30:18
 */
public interface SystemTripartiteAccountService extends BaseBindTwoService<
        SystemTripartiteAccount,
        SystemTripartiteAccountBo,
        SystemTripartiteAccountVo,
        SystemTripartiteAccountMapVo,
        SystemTripartiteAccountQuery
        > {

    /**
     * 创建新的对象
     *
     * @param pk   主id
     * @param fk   副id
     * @param type 账号类型
     * @return 新对象
     */
    SystemTripartiteAccount buildPo(@NonNull Long pk, @NonNull Long fk, String type);

    /**
     * 保存新的数据
     *
     * @param pk   主id
     * @param fk   副id
     * @param type 账号类型
     * @return 新对象
     */
    SystemTripartiteAccount bindPo(@NonNull Long pk, @NonNull Long fk, String type);

    /**
     * 根据type等信息获取第三方账号信息
     *
     * @param fk   主id
     * @param type 账号类型
     * @return 对象信息
     */
    SystemTripartiteAccount getByType(Long fk, String type);

}
